干货|手把手教你用Ubuntu14.04 LTS搭建简易人脸识别系统
来源:七月在线老宅
硬件:Core i7-6700;16GB;Nvidia GeForce GTX1070;500G SSD
平台:台式PC
软件:Linux 对应的GTX1070驱动;cuda8.0;cudnn 5.1;Linux 14.04 LTS,OpenCV 3.1.0 Linux版
相关博客:http://www.jianshu.com/p/68ac83436a1b
前期环境搭建
本文实验基于的环境:Ubuntu14.04LTS+CUDA8.0+cudnn5.1的安装和调试请读者查看本博之前的博文:
《(Ubuntu+Tensorflow+CUDA8.0+cudnn,新鲜靠谱版)利用DL学梵高作画---实战记录和心得》,本文不再赘述。
编译环境准备
在Terminal中,操作如下:
输入:sudo -i 回车
输入开机登录密码,回车
输入:sudo apt-get install build-essential 回车
等待系统完成安装。。。。。。
(笔者注:大部分情况下,在完成了前文所说的“前期环境搭建”,这一步是可以省略的。)
依赖库安装
继续在Terminal中,操作如下:
输入:apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 回车
(此时,系统会多次询问是否需要安装***,全部输入Y 回车,即可)
屏幕显示如图:
然后,继续在Terminal中,操作如下:
输入:apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 回车 等待
(笔者注:小白在操作时,尤其是在windows环境下成长出来的Linux小白,在输入命令时一定要克制内心对于命令输入的抵触心理)
准备OpenCV 3.1.0 for Linux
在OpenCV官网下载区下载OpenCV 3.1.0 for Linux
地址:http://opencv.org/releases.html
将下载文件放置在Ubuntu14.04LTS的桌面上,执行解压操作,备用。
安装
安装操作全部在OpenCV解压文件的目录内进行,所以,首先需要操作的是切入OpenCV解压文件内。操作如下:(以下载文件名为opencv-3.1.0.zip为例)
继续在Terminal中操作:
输入:cd /OpenCV-3.1.0/ 回车
输入:cmake . 回车
输入:sudo make 回车
输入:sudo make install 回车
输入:sudo /bin/bash -c 'echo "/usr/local/lib"> /etc/ld.so.conf.d/opencv.conf' 回车
输入:sudo ldconfig 回车
这里需要注意的是,笔者在安装时,出现了系统已安装的CUDA-8.0与OpenCV 3.1.0冲突的情况,这时需要修改OpenCV 3.1.0的源码,具体操作如下:
输入:cd /OpenCV-3.1.0/modules/cudalegacy/src/ 回车
输入:vi graphcuts.cpp 回车
按照VIM的文本修改方式,将文本中的第45行:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
修改成:
#if !defined(HAVE_CUDA)||defined(CUDA_DISABLER)||(CUDART_VERSION>=8000)
然后,在Terminal中,执行:
sudo make 回车
屏幕显示内容如下:
编译自带Samples
如果你熟悉了上文的操作,那么如下的操作也不会陌生,因为所有的执行依然要在OpenCV3.1.0的源文件目录下进行。
在Terminal中,操作如下:
输入:cd ~/OpenCV-3.1.0/samples/ 回车
输入:cmake . 回车
输入:sudo make -j $(nproc) 回车
屏幕显示如下:
人脸检测
在这一波编译执行完成之后,就可以进行OpenCV 3.1.0人脸检测测试程序的执行了,这里需要你准备一张带有人脸正面(免冠,免眼镜)的照片,小编这里用了美队。
先将照片放在桌面上,并命名为CA.jpg。
依然是在Terminal中,具体操作如下:
输入:
cd ~/opencv-3.1.0/samples/cpp 回车
输入:
./cpp-example-facedetect /home/[输到这里可以按一下Tab键]/Desktop/CA.jpg 回车
————————见证奇迹的时刻————————
这次实验使用OpenCV3.1自带的facedetect人脸检测样例算法,检测成功用时436毫秒,由此可以看出OpenCV自带的人脸检测算法效率并不高。从图中可以看出,算法并不能够精准的只抓取美队的面部,并且,经多次实验确认,此算法不能对戴眼镜以及帽子的面部特征做出识别,足见其还有很大的改进空间。
重磅|IEEE发布了最新的世界顶级机器人视频集锦,不看你会后悔
最新|Yann LeCun昨天在清华都讲了什么?(附精彩视频)
重磅|百度AI负责人吴恩达(Andrew Ng)宣布将从百度辞职
开源|2017 CVPR(Oral Paper):多目标实时体态估测 项目开源
重磅|IBM和万达签订战略合作协议 助推Watson在华落地